<?php

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

class Huespedes extends CI_Controller {

    public function __construct() {
        parent::__construct();
        session_start();
        $this->estaLogueado();
        $this->load->model('cliente_x_reservaM');
        $this->load->model('documentoM');
        $this->load->model('estadoCivilM');
        $this->load->model('procedencia_destinoM');
        $this->load->model('reservaM');
        $this->load->model('cliente_x_reservaM');
    }

    public function index() {
        if (!empty($_GET["reserva"])) {
            $this->escapar($_GET);
            $idReserva = $_GET["reserva"];
            $data["tab"] = "huespedes";
            $data["huespedes"] = $this->cliente_x_reservaM->cargarHuespedes($idReserva);
            $data["documentos"] = $this->documentoM->obtenerDocumentos();
            $data["estadoCivil"] = $this->estadoCivilM->obtenerEstadoCivil();
            $data["estadoReserva"] = $this->reservaM->obtenerDatos("checkin_realizado,checkout_realizado", $idReserva);
            //   var_dump($data["huespedes"]);
            $this->load->view('header', $data);
            $this->load->view('menuCalendarioV/headMenuCalendario');
            $this->load->view('menuCalendarioV/huespedesV');
            $this->load->view('menuCalendarioV/footerMenuCalendario');
            $this->load->view('footer');
        } else {
            header("Location:calendario");
        }
    }

    public function crearHuesped() {
        $this->load->model('clienteM');
        $this->escapar($_POST);

        if ($_POST['idEstadoCivil'] == '') {
            $_POST['idEstadoCivil'] = 3;
        }
        $idCliente;
        $this->formatoFechaBD($_POST['fechaNacimiento']);
        if ($_POST['idCliente'] == '') {
            $this->verificarCantidadHuespedes($_POST['idReserva']);
            $this->clienteM->crearClientePersona($_POST['documento'], $_POST['nacionalidad'], $_POST['tipoDocumento'], $_POST['nombre'], $_POST['apellido'], $_POST['genero'], $_POST['fechaNacimiento'], $_POST['telefono'], $_POST['email'], $_POST['ocupacion'], $_POST['idEstadoCivil']);
            $idCliente = mysql_insert_id();
            $this->cliente_x_reservaM->registrarClinteEnReserva($_POST['idReserva'], $idCliente);
            $this->procedencia_destinoM->insertarRegistro($_POST['idReserva'], $idCliente, $_POST['paisProcedencia'], $_POST['paisDestino'], $_POST['ciudadProcedencia'], $_POST['ciudadDestino']);
        } else {
            $idCliente = $_POST['idCliente'];
            $this->clienteM->actualizarClientePersona($_POST['idCliente'], $_POST['documento'], $_POST['nacionalidad'], $_POST['tipoDocumento'], $_POST['nombre'], $_POST['apellido'], $_POST['genero'], $_POST['fechaNacimiento'], $_POST['telefono'], $_POST['email'], $_POST['ocupacion'], $_POST['idEstadoCivil']);
            $existe = $this->cliente_x_reservaM->existeClienteEnReserva($_POST['idReserva'], $idCliente);

            if ($existe[0]->cantidad == 0) {
                $this->verificarCantidadHuespedes($_POST['idReserva']);
                $this->cliente_x_reservaM->registrarClinteEnReserva($_POST['idReserva'], $idCliente);
                $this->procedencia_destinoM->insertarRegistro($_POST['idReserva'], $idCliente, $_POST['paisProcedencia'], $_POST['paisDestino'], $_POST['ciudadProcedencia'], $_POST['ciudadDestino']);
                $_SESSION["mensaje"]["contenido"] = "Huesped creado exitosamente.";
                $_SESSION["mensaje"]["tipo"] = "exito";
            } else {
                $this->procedencia_destinoM->actualizarRegistro($_POST['idReserva'], $idCliente, $_POST['paisProcedencia'], $_POST['paisDestino'], $_POST['ciudadProcedencia'], $_POST['ciudadDestino']);
                $_SESSION["mensaje"]["contenido"] = " {$_POST['nombre']} {$_POST['apellido']} ya esta registrado en esta reserva";
                $_SESSION["mensaje"]["tipo"] = "advertencia";
            }
        }
        header("location:../huespedes?reserva={$_POST['idReserva']}");
    }

    private function verificarCantidadHuespedes($idReserva) {
        $clientesDecalarados = $this->reservaM->obtenerDatos("numero_personas", $idReserva);
        $clientesDecalarados = $clientesDecalarados[0]->numero_personas;

        $clientesRegistrados = $this->cliente_x_reservaM->contarHuespedes($idReserva);
        $clientesRegistrados = $clientesRegistrados[0]->cantidad;
        if ($clientesRegistrados >= $clientesDecalarados) {
            $_SESSION["mensaje"]["contenido"] = "Solo se han declarado $clientesDecalarados húespedes en esta reserva";
            $_SESSION["mensaje"]["tipo"] = "advertencia";
            header("location:../huespedes?reserva=$idReserva");
            exit();
        }
    }

    private function formatoFechaBD(&$fecha) {
        $fecha = explode("/", $fecha);
        $fecha = "$fecha[2]-$fecha[1]-$fecha[0]";
    }

    public function eliminarHuesped() {
        var_dump($_POST);
        $this->escapar($_POST);
        $this->procedencia_destinoM->eliminarRegistro($_POST["id-reserva"], $_POST["id-cliente"]);
        $this->cliente_x_reservaM->eliminarClienteDeReserva($_POST["id-reserva"], $_POST["id-cliente"]);
        $_SESSION["mensaje"]["contenido"] = "Húesped eliminado de esta reserva exitosamente.";
        $_SESSION["mensaje"]["tipo"] = "exito";
        header("location:../huespedes?reserva={$_POST['id-reserva']}");
    }

}